const { sequelize } = require('../utils/database');
const models = require('../models');

async function forceResetDatabase() {
  try {
    console.log('开始强制重置数据库...');
    
    // 测试数据库连接
    await sequelize.authenticate();
    console.log('数据库连接成功');
    
    // 禁用外键检查
    await sequelize.query('SET FOREIGN_KEY_CHECKS = 0;');
    console.log('已禁用外键检查');
    
    // 获取所有表名
    const [tables] = await sequelize.query(
      "SELECT table_name FROM information_schema.tables WHERE table_schema = 'campus_platform';"
    );
    
    // 删除所有表
    for (const table of tables) {
      await sequelize.query(`DROP TABLE IF EXISTS \`${table.table_name}\`;`);
      console.log(`已删除表: ${table.table_name}`);
    }
    
    // 重新启用外键检查
    await sequelize.query('SET FOREIGN_KEY_CHECKS = 1;');
    console.log('已重新启用外键检查');
    
    // 重新创建所有表
    await sequelize.sync({ force: false });
    console.log('数据库表重新创建完成');
    
    console.log('数据库强制重置完成！');
    process.exit(0);
  } catch (error) {
    console.error('数据库强制重置失败:', error);
    process.exit(1);
  }
}

forceResetDatabase(); 